//** Smooth Navigational Menu- By Dynamic Drive DHTML code library: http://www.dynamicdrive.com
//** Script Download/ instructions page: http://www.dynamicdrive.com/dynamicindex1/ddlevelsmenu/
//** Menu created: Nov 12, 2008

//** Dec 12th, 08" (v1.01): Fixed Shadow issue when multiple LIs within the same UL (level) contain sub menus: http://www.dynamicdrive.com/forums/showthread.php?t=39177&highlight=smooth

//** Feb 11th, 09" (v1.02): The currently active main menu item (LI A) now gets a CSS class of ".selected", including sub menu items.

//** May 1st, 09" (v1.3):
//** 1) Now supports vertical (side bar) menu mode- set "orientation" to 'v'
//** 2) In IE6, shadows are now always disabled

//** July 27th, 09" (v1.31): Fixed bug so shadows can be disabled if desired.

var ddsmoothmenu = {

	// Specify full URL to down and right arrow images (23 is padding-right
	// added to top level LIs with drop downs):
	arrowimages : {
		down : [ 'downarrowclass', '', 0 ],
		right : [ 'rightarrowclass', '' ]
	},
	transition : {
		overtime : 300,
		outtime : 300
	}, // duration of slide in/ out animation, in milliseconds
	shadow : {
		enable : false,
		offsetx : 0,
		offsety : 0
	},
	// /////Stop configuring beyond here///////////////////////////
	detectwebkit : navigator.userAgent.toLowerCase().indexOf("applewebkit") != -1, // detect
	// WebKit
	// browsers
	// (Safari,
	// Chrome
	// etc)
	detectie6 : document.all && !window.XMLHttpRequest,
	getajaxmenu : function($, setting) { // function to fetch external page
		// containing the panel DIVs
		var $menucontainer = $('#' + setting.contentsource[0]) // reference
		// empty div on
		// page that
		// will hold
		// menu
		$menucontainer.html("Loading Menu...")
		$.ajax({
			url : setting.contentsource[1], // path to external menu file
			async : true,
			error : function(ajaxrequest) {
				$menucontainer.html('Error fetching content. Server Response: '
						+ ajaxrequest.responseText)
			},
			success : function(content) {
				$menucontainer.html(content)
				ddsmoothmenu.buildmenu($, setting)
			}
		})
	},

	buildmenu : function($, setting) {
		var smoothmenu = ddsmoothmenu
		var $mainmenu = $("#" + setting.mainmenuid + ">ul") // reference main
		// menu UL
		$mainmenu.parent().get(0).className = setting.classname
				|| "ddsmoothmenu"
		var $headers = $mainmenu.find("ul").parent()
		$headers.hover(function(e) {
			$(this).children('a:eq(0)').addClass('selected')
		}, function(e) {
			$(this).children('a:eq(0)').removeClass('selected')
		})
		$headers
				.each(function(i) { // loop through each LI header
					var $curobj = $(this).css({
						zIndex : 100 - i
					}) // reference current LI header
					var $subul = $(this).find('ul:eq(0)').css({
						display : 'block'
					})
					this._dimensions = {
						w : this.offsetWidth,
						h : this.offsetHeight,
						subulw : $subul.outerWidth(),
						subulh : $subul.outerHeight()
					}
					this.istopheader = $curobj.parents("ul").length == 1 ? true
							: false // is top level header?
					$subul
							.css({
								top : this.istopheader
										&& setting.orientation != 'v' ? this._dimensions.h
										+ "px"
										: 0
							})
					$curobj.children("a:eq(0)").css(this.istopheader ? {
						paddingRight : smoothmenu.arrowimages.down[2]
					} : {}).append()
					if (smoothmenu.shadow.enable) {
						this._shadowoffset = {
							x : (this.istopheader ? $subul.offset().left
									+ smoothmenu.shadow.offsetx
									: this._dimensions.w),
							y : (this.istopheader ? $subul.offset().top
									+ smoothmenu.shadow.offsety : $curobj
									.position().top)
						} // store this shadow's offsets
						if (this.istopheader)
							$parentshadow = $(document.body)
						else {
							var $parentLi = $curobj.parents("li:eq(0)")
							$parentshadow = $parentLi.get(0).$shadow
						}
						this.$shadow = $(
								'<div class="ddshadow'
										+ (this.istopheader ? ' toplevelshadow'
												: '') + '"></div>').prependTo(
								$parentshadow).css({
							left : this._shadowoffset.x + 'px',
							top : this._shadowoffset.y + 'px'
						}) // insert shadow DIV and set it to parent node for
						// the next shadow div
					}
					$curobj
							.hover(
									function(e) {
										var $targetul = $(this).children(
												"ul:eq(0)")
										this._offsets = {
											left : $(this).offset().left,
											top : $(this).offset().top
										}
										var menuleft = this.istopheader
												&& setting.orientation != 'v' ? 0
												: this._dimensions.w
										menuleft = (this._offsets.left
												+ menuleft
												+ this._dimensions.subulw > $(
												window).width()) ? (this.istopheader
												&& setting.orientation != 'v' ? -this._dimensions.subulw
												+ this._dimensions.w
												: -this._dimensions.w)
												: menuleft // calculate this
										// sub menu's
										// offsets from its
										// parent
										if ($targetul.queue().length <= 1) { // if 1
											// or
											// less
											// queued
											// animations
											$targetul
													.css(
															{
																left : menuleft
																		+ "px",
																width : this._dimensions.subulw
																		+ 'px'
															})
													.animate(
															{
																height : 'show',
																opacity : 'show'
															},
															ddsmoothmenu.transition.overtime)
											if (smoothmenu.shadow.enable) {
												var shadowleft = this.istopheader ? $targetul
														.offset().left
														+ ddsmoothmenu.shadow.offsetx
														: menuleft
												var shadowtop = this.istopheader ? $targetul
														.offset().top
														+ smoothmenu.shadow.offsety
														: this._shadowoffset.y
												if (!this.istopheader
														&& ddsmoothmenu.detectwebkit) { // in
													// WebKit
													// browsers,
													// restore
													// shadow's
													// opacity
													// to
													// full
													this.$shadow.css({
														opacity : 1
													})
												}
												this.$shadow
														.css(
																{
																	overflow : '',
																	width : this._dimensions.subulw
																			+ 'px',
																	left : shadowleft
																			+ 'px',
																	top : shadowtop
																			+ 'px'
																})
														.animate(
																{
																	height : this._dimensions.subulh
																			+ 'px'
																},
																ddsmoothmenu.transition.overtime)
											}
										}
									}, function(e) {
										var $targetul = $(this).children(
												"ul:eq(0)")
										$targetul.animate({
											height : 'hide',
											opacity : 'hide'
										}, ddsmoothmenu.transition.outtime)
										if (smoothmenu.shadow.enable) {
											if (ddsmoothmenu.detectwebkit) { // in
												// WebKit
												// browsers,
												// set
												// first
												// child
												// shadow's
												// opacity
												// to
												// 0,
												// as
												// "overflow:hidden"
												// doesn't
												// work
												// in
												// them
												this.$shadow.children(
														'div:eq(0)').css({
													opacity : 0
												})
											}
											this.$shadow.css({
												overflow : 'hidden'
											}).animate({
												height : 0
											}, ddsmoothmenu.transition.outtime)
										}
									}) // end hover
				}) // end $headers.each()
		$mainmenu.find("ul").css({
			display : 'none',
			visibility : 'visible'
		})
	},

	init : function(setting) {
		if (typeof setting.customtheme == "object"
				&& setting.customtheme.length == 2) { // override default menu
			// colors
			// (default/hover) with
			// custom set?
			var mainmenuid = '#' + setting.mainmenuid
			var mainselector = (setting.orientation == "v") ? mainmenuid
					: mainmenuid + ', ' + mainmenuid
			document.write('<style type="text/css">\n' + mainselector
					+ ' ul li a {background:' + setting.customtheme[0] + ';}\n'
					+ mainmenuid + ' ul li a:hover {background:'
					+ setting.customtheme[1] + ';}\n' + '</style>')
		}
		this.shadow.enable = (document.all && !window.XMLHttpRequest) ? false
				: this.shadow.enable // in IE6, always disable shadow
		jQuery(document).ready(function($) { // ajax menu?
			if (typeof setting.contentsource == "object") { // if external ajax
				// menu
				ddsmoothmenu.getajaxmenu($, setting)
			} else { // else if markup menu
				ddsmoothmenu.buildmenu($, setting)
			}
		})
	}

}; // end ddsmoothmenu variable
// =============================注册================================
var registerUser = {
	userNameRegister : $("#userNameRegister"),
	passwordRegister : $("#passwordRegister"),
	passwordRegister2 : $("#passwordRegister2"),
	emailRegister : $("#emailRegister"),
	// cityRegister = $("#cityRegister");
	allFields : $([]).add(this.userNameRegister).add(this.passwordRegister)
			.add(this.passwordRegister2).add(this.emailRegister),
	tips : $(".validateTips"),
	updateTips : function(t) {
		tips.text(t).addClass("ui-state-highlight");
		setTimeout(function() {
			tips.removeClass("ui-state-highlight", 1500);
		}, 500);
	},
	checkLength : function(o, n, min, max) {
		if (o.val().length > max || o.val().length < min) {
			o.addClass("ui-state-error");
			updateTips("" + n + "的长度必须在" + min + "和" + max + "之间.");
			return false;
		} else {
			return true;
		}
	},
	checkRegexp : function(o, regexp, n) {
		if (!(regexp.test(o.val()))) {
			o.addClass("ui-state-error");
			updateTips(n);
			return false;
		} else {
			return true;
		}
	},
	// 检测返回数据是否正确
	successFunc : function(data) {
		if (data == "" || data == 0) {
			alert("<span color='red'>请求失败</span>");
		} else {
			if (data.resultCode != "1") {
				alert("请求失败，请求返回码：" + data.resultStr);
			} else {
				alert("请求成功");
				window.location.reload(true);
			}
		}
	},
	init : function() {
		//初始化弹出框
		$("#dialog-form-register").dialog({
			autoOpen : false,
			height : 300,
			width : 350,
			modal : true,
			buttons : {
				"提交" : function() {
					// var bValid = true;
					// allFields.removeClass( "ui-state-error" );
					// if (cityId.val() == '' || cityId.val() == 0) {
					// alert(ROOTPATH+"/cityJson/addCity.action");
					/*
					 * $.post(ROOTPATH + "/cityJson/addCity.aspx", { cityName :
					 * cityName.val(), areaName : areaName.val(), areaNameDesc :
					 * areaNameDesc.val(), shortName : shortName.val() },
					 * function(data) { //alert(data); successFunc(data); });
					 */
					var cityId = 0;
					$('[name="customerRegister"]:radio').each(function() {
						if (this.checked) {
							cityId = this.value;
						}
					});
					if (cityId == 0) {
						alert("城市没有选择,请选择城市");
						return;
					} else {
					}
					var userName = $("#userNameRegister").val();
					var password = $("#passwordRegister").val();
					var password2 = $("#passwordRegister2").val();
					var email = $("#emailRegister").val();
					if (userName == "") {
						alert("用户名为空，请输用户名");
						return;
					}
					if (password == "") {
						alert("密码不能为空！");
						return;
					}
					alert(password + "=" + password2);
					if (password != password2) {
						alert("两次输入的密码不一样，请重新输入");
						return;
					}
					if (email == "") {
						alert("电子邮件不能为空，请输入电子邮件");
						return;
					}
					// private String userName;
					// private String passWord;
					// private String email;
					// private int cityId;

					$.post(ROOTPATH + "/customer/registeCustomer.aspx", {
						userName : userName,
						passWord : password,
						email : email,
						cityId : cityId
					}, function(data) {
						registerUser.successFunc(data);
					});

					// $(this).dialog("close");
				},
				"取消" : function() {
					$(this).dialog("close");
				}
			},
			"close" : function() {
				registerUser.allFields.val("").removeClass("ui-state-error");
			}
		});
	},
	registeCustomer : function() {
		$("#dialog-form-register").dialog("open");
	}
};
var loginUser = {
	userNameLogin : $("#userNameLogin"),
	passwordLogin : $("#passwordLogin"),
	// cityRegister = $("#cityRegister");
	allFields : $([]).add(this.userNameLogin).add(this.passwordLogin),
	tips : $(".validateTips"),
	updateTips : function(t) {
		tips.text(t).addClass("ui-state-highlight");
		setTimeout(function() {
			tips.removeClass("ui-state-highlight", 1500);
		}, 500);
	},
	// 检测返回数据是否正确
	successFunc : function(data) {
		if (data == "" || data == 0) {
			alert("<span color='red'>请求失败</span>");
		} else {
			if (data.resultCode != "1") {
				alert("请求失败，请求返回码：" + data.resultStr);
			} else {
				alert("登录成功");
				window.location.reload(true);
			}
		}
	},
	init : function() {
		$("#dialog-form-login").dialog({
			autoOpen : false,
			height : 300,
			width : 350,
			modal : true,
			buttons : {
				"提交" : function() {
					var userName = $("#userNameLogin").val();
					var password = $("#passwordLogin").val();
					if (userName == "") {
						alert("用户名为空，请输用户名");
						return;
					}
					if (password == "") {
						alert("密码不能为空！");
						return;
					}
					$.post(ROOTPATH + "/customer/login.aspx", {
						userName : userName,
						passWord : password
					}, function(data) {
						loginUser.successFunc(data);
					});

					// $(this).dialog("close");
				},
				"取消" : function() {
					$(this).dialog("close");
				}
			},
			"close" : function() {
				loginUser.allFields.val("").removeClass("ui-state-error");
			}
		});
	},
	login : function() {
		$("#dialog-form-login").dialog("open");
	}
};
//城市选择器
var citySelecter={
	init : function() {
		//初始化城市信息
		$.post(ROOTPATH + "/cityJson/findAllCity.aspx", {
		}, function(data) {
			//这里获得城市信息
			for(var i=0;i<data.list.length;i++){
				$("#city-selecter-citys").append('<input type="radio" name="city-selecter-input" value="'+data.list[i].id+'"/>'+data.list[i].cityName
						+'<input type="hidden" name="city-selecter-input-hidden" value="'+data.list[i].cityName+'" />');
			}
		});		
		$("#dialog-form-cityselecter").dialog({
			autoOpen : false,
			height : 300,
			width : 350,
			modal : true,
			buttons : {
				"提交" : function() {
					var cityId = 0;
					var cityName="";
					var index =0;
					$('[name="city-selecter-input"]:radio').each(function() {
						if (this.checked) {
							cityId = this.value;
							//cityName = this.class;
							//alert($('[name="city-selecter-input"]:hidden')[index].val());
							cityName = document.getElementsByName("city-selecter-input-hidden")[index].value;
						}
						index++;
					});
					if(cityId==0){
						alert("城市没有被选中,请选择");
						return;
					}
					$.post(ROOTPATH + "/cityJson/changeCity.aspx", {
						cityId : cityId
					}, function(data) {
						//loginUser.successFunc(data);
						if (data == "" || data == 0) {
							alert("请求失败，请联系管理员");
						} else {
							if (data.resultCode != "1") {
								alert("请求失败，请求返回码：" + data.resultStr);
							} else {
								alert("城市切换成功");
								window.location.reload(true);
								//$("#dialog-form-cityselecter").dialog("close");
							}
						}
					});
					//$(this).dialog("close");
					//$("#currentCIty").html(cityName+"站");
					//window.location.reload(true);
				},
				"取消" : function() {
					$(this).dialog("close");
				}
			},
			"close" : function() {
				//loginUser.allFields.val("").removeClass("ui-state-error");
			}
		});
	},
	openDialog : function() {
		$("#dialog-form-cityselecter").dialog("open");
	}
};
$(function() {
	//注册用户dialog初始化
	registerUser.init();
	//城市dialog初始化
	citySelecter.init();
	// Initialize Menu instance(s):
	ddsmoothmenu.init({
		mainmenuid : "smoothmenu1", // menu DIV id
		orientation : 'v', // Horizontal or vertical menu: Set to "h" or "v"
		classname : 'nav'
	});
	loginUser.init();
});
function userLogout(){
	$.post(ROOTPATH + "/customer/logout.aspx", {
	}, function(data) {
		//loginUser.successFunc(data);
		if (data == "" || data == 0) {
			alert("请求失败");
		} else {
			if (data.resultCode != "1") {
				alert("请求失败，请求返回码：" + data.resultStr);
			} else {
				alert("退出成功");
				window.location.reload(true);
			}
		}
	});
}